#if !defined(APP_MESSAGE_H)
#define APP_MESSAGE_H
// 连接类型的枚举
typedef enum
{
    CONN_NONE,
    CONN_BT,
    CONN_LORA,
    CONN_CAN
} ConnectionType;

// 消息的结构体
typedef struct
{
    ConnectionType conn_Type;
    char *payload; // id和msg组成
    int id_len;
    int msg_len;
} Message;
// 根据二进制数据初始化消息
//binary:二进制数据指针
//len:二进制数据长度
//return:消息指针
Message *app_message_initByBinary(char *binary,int len);
// 根据json数据初始化消息
//json:json数据指针
//len:json数据长度
//return:消息指针 成功：返回消息指针，失败：返回NULL
Message *app_message_initByJson(char *json);
// 将消息消息转换为二进制数据
//message:消息指针
//binary:接收二进制数据指针
//len:接收二进制数据长度
//return:成功：返回二进制数据长度，失败：返回-1
int app_message_toBinary(Message *message, char *binary, int len);
// 将消息转换为json数据
//message:消息指针
//json:接收json数据指针
//len:接收json数据长度
//return:成功：返回json数据长度，失败：返回-1
int app_message_toJson(Message *message, char *json, int len);
// 释放消息
//message:消息指针
//return:void
void app_message_free(Message *message);
#endif // APP_MESSAGE_H
